From 5ba2dc3fd34c9f903816f277e08d7df061fa4c8d Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Tue, 2 Mar 1993 07:29:05 +0000 Subject: [PATCH] * mouse.el (mouse-split-window-vertically): If the user clicks too close to the top or bottom of a window, split at the closest reasonable line. Give a helpful error message if the window is too small to be split anywhere. (mouse-split-window-horizontally): Similar changes. --- lisp/mouse.el | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/lisp/mouse.el b/lisp/mouse.el index 7994db2a92d..6285624f03a 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -107,14 +107,28 @@ This command must be bound to a mouse click." (interactive "@e") (let ((start (event-start click))) (select-window (posn-window start)) - (split-window-vertically (1+ (cdr (posn-col-row click)))))) + (let ((new-height (1+ (cdr (posn-col-row (event-end click))))) + (first-line window-min-height) + (last-line (- (window-height) window-min-height))) + (if (< last-line first-line) + (error "window too short to split") + (split-window-vertically + (min (max new-height first-line) last-line)))))) (defun mouse-split-window-horizontally (click) "Select Emacs window mouse is on, then split it horizontally in half. The window is split at the column clicked on. This command must be bound to a mouse click." (interactive "@e") - (split-window-horizontally (1+ (car (posn-col-row (event-end click)))))) + (let ((start (event-start click))) + (select-window (posn-window start)) + (let ((new-width (1+ (car (posn-col-row (event-end click))))) + (first-col window-min-width) + (last-col (- (window-width) window-min-width))) + (if (< last-col first-col) + (error "window too narrow to split") + (split-window-horizontally + (min (max new-width first-col) last-col)))))) (defun mouse-set-point (click) "Move point to the position clicked on with the mouse. @@ -240,7 +254,7 @@ and selects that window." (select-window window) (switch-to-buffer buf)))))) -;;; These need to be rewritten for the new scrollbar implementation. +;;; These need to be rewritten for the new scroll bar implementation. ;;;!! ;; Commands for the scroll bar. ;;;!! @@ -482,7 +496,7 @@ and selects that window." ;;;!! ;;; (define-key doubleclick-test-map mouse-button-left-up 'double-up)) ;;;!! ;;;!! ;; -;;;!! ;; This scrolls while button is depressed. Use preferable in scrollbar. +;;;!! ;; This scrolls while button is depressed. Use preferable in scroll bar. ;;;!! ;; ;;;!! ;;;!! (defvar scrolled-lines 0) -- 2.30.2